home *** CD-ROM | disk | FTP | other *** search
- unit Test;
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, StdCtrls, Grids, Outline, Dropfile, Explorer, DScan,
- FileCtrl;
-
- type
-
- TTstForm = class(TForm)
- NM: TLabel;
- Parse: TButton;
- attr: TEdit;
- LFN: TDirScanner;
- Drives: TDriveComboBox;
- Dirs: TDirectoryListBox;
- GroupBox1: TGroupBox;
- GroupBox2: TGroupBox;
- isLFN: TRadioButton;
- toLongName: TButton;
- FLIST: TStringGrid;
- GroupBox3: TGroupBox;
- Label1: TLabel;
- FOnly: TButton;
- DOnly: TButton;
- DnF: TButton;
- VID: TButton;
- GroupBox4: TGroupBox;
- pttrn: TEdit;
- Label2: TLabel;
- FFirst: TButton;
- FNext: TButton;
- Use: TCheckBox;
- Keep: TCheckBox;
- Label3: TLabel;
- xxx: TLabel;
- procedure UseClick(Sender: TObject);
- procedure KeepClick(Sender: TObject);
- procedure ParseClick(Sender: TObject);
- procedure isLFNClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure DirsDblClick(Sender: TObject);
- procedure toLongNameClick(Sender: TObject);
- procedure FOnlyClick(Sender: TObject);
- procedure DOnlyClick(Sender: TObject);
- procedure DnFClick(Sender: TObject);
- procedure VIDClick(Sender: TObject);
- procedure FFirstClick(Sender: TObject);
- procedure FNextClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- TstForm: TTstForm;
-
- implementation
-
- {$R *.DFM}
-
- procedure pp_roc( var fName:String; attr: Word); far;
- begin
- if (attr AND $10) <> 0 then
- fName := '['+fName+']';
- end;
-
-
- procedure TTstForm.UseClick(Sender: TObject);
- begin
- LFN.UseLongFileNames := Use.Checked;
- end;
-
- procedure TTstForm.KeepClick(Sender: TObject);
- begin
- LFN.KeepExtension := Keep.Checked;
- end;
-
- procedure TTstForm.ParseClick(Sender: TObject);
- var
- p, s: String;
- attr_, rAttr: Word;
- ts : TStringList;
- p__:TParserPreprocessor;
- i: Integer;
- begin
- attr_ := Word(StrToInt( attr.Text ));
- p := Dirs.Directory;
- if p[Length(p)] = '\' then
- p := p + '*.*'
- else
- p := p + '\*.*';
-
- ts := TStringList.create;
- ts.Clear;
- p__ := pp_roc;
- LFN.loadFileList_PP( ts, p, attr_, p__, True);
- ts.Sort;
- { here comes the formatting and adding of the items }
- FLIST.RowCount := ts.Count+1;
- for i := 0 to ts.Count-1 do
- begin
- FLIST.Cols[0][i+1] := ts.Strings[i];
- with ts.Objects[i] as TDirItemData do
- begin
- FmtStr( s, '%2.2d-%2.2d-%4.4d', [Integer(lastAccess.Month), Integer(lastAccess.Day), Integer(lastAccess.Year_1980)+1980]);
- FLIST.Cols[2][i+1] := s;
- FmtStr( s, '%2.2d:%2.2d:%2.2d', [Integer(lastAccess.Hour), Integer(lastAccess.Min), Integer(lastAccess.Sec)]);
- FLIST.Cols[3][i+1] := s;
- FmtStr( s, '%d', [FSize] );
- FLIST.Cols[1][i+1] := s;
- end;
- end;
-
- ts.destroy;
- end;
-
- procedure TTstForm.isLFNClick(Sender: TObject);
- begin
- isLFN.Checked := LFN.isLFNsystem;
-
- end;
-
- procedure TTstForm.FormCreate(Sender: TObject);
- begin
- isLFN.Checked := LFN.isLFNsystem;
- FLIST.Rows[0][0] := 'Name';
- FLIST.Rows[0][1] := 'Size';
- FLIST.Rows[0][2] := 'Cr. Dat';
- FLIST.Rows[0][3] := 'Cr. Time';
- Use.Checked := True;
- Keep.Checked := True;
- end;
-
- procedure TTstForm.DirsDblClick(Sender: TObject);
- begin
- NM.Caption := Dirs.Directory;
- end;
-
- procedure TTstForm.toLongNameClick(Sender: TObject);
- begin
- NM.Caption := LFN.LFNfromSFN( NM.CAption );
- end;
-
- procedure TTstForm.FOnlyClick(Sender: TObject);
- begin
- attr.Text := '$'+IntToHex( lfnFilesOnly, 4 );
- end;
-
- procedure TTstForm.DOnlyClick(Sender: TObject);
- begin
- attr.Text := '$'+IntToHex( lfnDirectoriesOnly, 4 );
- end;
-
- procedure TTstForm.DnFClick(Sender: TObject);
- begin
- attr.Text := '$'+IntToHex( lfnFilesAndDirs, 4 );
- end;
-
- procedure TTstForm.VIDClick(Sender: TObject);
- begin
- attr.Text := '$'+IntToHex( lfnVolumeIDOnly, 4 );
- end;
-
- procedure TTstForm.FFirstClick(Sender: TObject);
- var
- p, s: String;
- rAttr, attr_: Word;
- begin
- FLIST.RowCount := 1;
- FLIST.RowCount := 2;
- FList.Rows[1].Clear;
-
- attr_ := Word(StrToInt( attr.Text ));
- p := Dirs.Directory;
- if p[Length(p)] = '\' then
- p := p + pttrn.Text
- else
- p := p + '\'+ pttrn.Text;
-
- FNext.Enabled := LFN.FindFirstFileName( p, attr_, s, rAttr );
- if FNext.Enabled then
- begin
- FLIST.Rows[1][0] := s;
- end;
- FList.FixedRows := 1;
- end;
-
- procedure TTstForm.FNextClick(Sender: TObject);
- var
- s: String;
- rAttr: Word;
- begin
- FNext.Enabled := LFN.FindNextFileName( s, rAttr );
- if FNext.Enabled then
- begin
- FLIST.RowCount := FLIST.RowCount+1;
- FLIST.Rows[FLIST.RowCount-1][0] := s;
- end;
- end;
-
- end.
-